home *** CD-ROM | disk | FTP | other *** search
- '$INCLUDE 'setupapi.inc'
- '$INCLUDE 'msdetect.inc'
-
- ' Dialog ID's
- '
- CONST INSTALLTYPE = 300
- CONST ASKQUIT = 200
- CONST EXITFAILURE = 400
- CONST EXITSUCCESS = 700
- CONST EXITQUIT = 600
-
-
- '
- ' Bitmap ID
- '
- CONST LOGO = 1
-
-
- ' From windows.h:
- '
- CONST WS_VISIBLE=&H10000000
- CONST WS_BORDER =&H00800000
- CONST WS_CLIPCHILDREN =&H02000000
- CONST GWL_STYLE =-16
- CONST SW_SHOWMAXIMIZED=3
- CONST MB_YESNO=4
- CONST IDNO=7
- CONST SPI_SETSCREENSAVEACTIVE=17
- CONST WM_WININICHANGE=26
-
-
- ' PMDDE ùp
- CONST PMDDE_ACT_DELETEGROUP=4
- CONST PMDDE_ACT_DELETEPROG=8
-
-
-
- ' è╓ÉöÆΦï`
- '
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
- DECLARE FUNCTION SetWindowsInfo( _winDir$ )
- DECLARE FUNCTION ResetWindowsInfo( _winDir$ )
- DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%,iShow%) AS INTEGER
- DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
-
- DECLARE FUNCTION RegisterDDEClient LIB "MSCUISTF.DLL" ( bToggle% ) AS INTEGER
- DECLARE FUNCTION PMDDE LIB "MSCUISTF.DLL" ( wAction%, szGroupDesc$, szGroupFile$, szCmdLine$, szProgDesc$, szIconFile$, nIconID% ) AS INTEGER
- DECLARE FUNCTION RemoveDirEx LIB "MSCUISTF.DLL" ( _destDir$ )
- DECLARE FUNCTION WritePrivateProfileString LIB "KRNL386.EXE" (szSection$, szEntry$, szString$, szFileName$) AS LONG
- DECLARE FUNCTION SystemParametersInfo LIB "USER.EXE" (uAction%, uParam%, lpvParam$, ufWinini%) AS INTEGER
-
-
- ' âXâ^ü[âg
- '
-
- ' Åëè·ë╗Åêù¥
- '
- INIT:
-
-
- ' Window ì┼æσë╗
- '
- hWnd%=HwndFrame()
- l&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
- i%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
-
-
- ' âåü[âUü[âJâXâ^âÇécékéké≡ùpê╙
- '
- _cuiDLL$ = "mscuistf.dll"
-
-
- ' â^âCâgâïé¿éµé╤â^âCâgâïârâbâgâ}âbâvé≡É▌ÆΦ
- '
- SetBitmap _cuiDLL$, LOGO
- SetTitle "âZâbâgâAâbâv"
-
- prev% = ShowWaitCursor()
-
-
- ' SETUP.INF âtâ@âCâïé╠ô╟é▌ì₧é▌
- '
- infFile$ = GetSymbolValue("STF_SRCINFPATH")
- IF infFile$ = "" THEN
- infFile$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
- END IF
- ReadInfFile infFile$
-
-
- ' â\ü[âXüEâfâXâgâlü[âVâçâôâfâBâîâNâgâèé≡É▌ÆΦ
- '
- _winDir$ = GetWindowsDir()
- _destDir$ = _winDir$
- _srcDir$ = GetSymbolValue("STF_SRCDIR")
-
- RestoreCursor prev%
-
-
- ' âCâôâXâgü[âïâ^âCâvé╠æIæ≡
- '
- INSTTYPE:
-
- ' üuâCâôâXâgü[âïâ^âCâvé╠æIæ≡üvâ_âCâAâìâOâ{âbâNâXÅêù¥
- '
- ret$ = UIStartDlg(_cuiDLL$, INSTALLTYPE, "FInstallTypeDlgProc", 0, "")
- UIPop 1
- IF ret$ = "CONTINUE" THEN
- INSTTYPE$ = GetSymbolValue("InstallType")
- IF INSTTYPE$ = "INSTALL" THEN
- GOTO DOINSTALL
- ELSEIF INSTTYPE$ = "UNINST" THEN
- GOTO DOUNINST
- END IF
- ELSEIF ret$ = "CANCEL" THEN
- END
- END IF
-
-
- ' âCâôâXâgü[âï
- '
- DOINSTALL:
-
-
- ' âfâBâXâNï≤é½ùeù╩â`âFâbâN
- '
- CHECKSIZE:
-
- prev% = ShowWaitCursor()
-
- ListSym$="list"
- NeedSym$="need"
-
- _extraCosts$ = "ExtraCosts"
- FOR i% = 1 TO 26 STEP 1
- AddListItem _extraCosts$, "0"
- NEXT i%
- ClearCopyList
- AddSectionFilesToCopyList "Files", _srcDir$, _destDir$
- _stillNeed& = GetCopyListCost( _extraCosts$, ListSym$, NeedSym$ )
-
- RestoreCursor prev%
-
- IF _stillNeed& > 0 THEN
- destDrive$ = ucase$( MID$( _destDir$, 1, 1 ) )
- destDrv% = ASC( destDrive$ ) - ASC( "A" ) + 1
- szNeed$ = GetListItem( NeedSym$, destDrv% )
- i% = DoMsgBox( "âCâôâXâgü[âïé╔é═üA" + destDrive$ + ": âhâëâCâué╔éáé╞ " + szNeed$ + "âoâCâgé╠ùeù╩é¬òKùvé┼é╖üB", "ùeù╩òsæ½", MB_ICONHAND+MB_OK )
- ERROR STFQUIT
- END IF
-
-
- ' âCâôâXâgü[âïÅêù¥
- '
- INSTALL:
-
- ' âfâXâgâlü[âVâçâôâfâBâîâNâgâèì∞ɼ
- '
- prev% = ShowWaitCursor()
- CreateDir _destDir$, cmoNone
- RestoreCursor prev%
-
- ' âtâ@âCâïé╠âRâsü[
- '
- CopyFilesInCopyList
-
- ' Windows âVâXâeâÇÉ▌ÆΦ
- '
- d% = SetWindowsInfo( _winDir$ )
-
-
- ' ON ERROR Ä₧é╠Åêù¥
- '
- QUIT:
- ON ERROR GOTO ERRQUIT
-
- IF ERR = 0 THEN
- dlg% = EXITSUCCESS
- ELSEIF ERR = STFQUIT THEN
- dlg% = EXITQUIT
- ELSE
- dlg% = EXITFAILURE
- END IF
- QUITL1:
- ret$ = UIStartDlg(_cuiDLL$, dlg%, "FInfo0DlgProc", 0, "")
- IF ret$ = "REACTIVATE" THEN
- GOTO QUITL1
- END IF
- UIPop 1
-
- END
-
-
- ERRQUIT:
- i% = DoMsgBox( "ôαòöâGâëü[ : âåü[âUü[âTâ|ü[âgîWé▄é┼üAé▓ÿAùìé¡é╛é│éóüB", "âZâbâgâAâbâv", MB_OK+MB_TASKMODAL+MB_ICONHAND )
- END
-
-
- ASKQUIT:
- ret$ = UIStartDlg(_cuiDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
-
- IF ret$ = "EXIT" THEN
- UIPop 1
- ERROR STFQUIT
- ELSEIF ret$ = "REACTIVATE" THEN
- GOTO ASKQUIT
- ELSE
- UIPop 1
- END IF
- RETURN
-
-
- ' âAâôâCâôâXâgü[âï
- '
- DOUNINST:
-
- ' èm öF
- '
- d% = DoMsgBox( "ânü[âhâfâBâXâNé╔éáéΘâfü[â^é≡æSé─ìφÅ£é╡é▄é╖üBéµéδé╡éóé┼é╖é⌐üH", "âAâôâCâôâXâgü[âï", MB_YESNO )
- IF d% = IDNO THEN
- END
- END IF
-
- prev% = ShowWaitCursor()
-
- ' âfâXâgâlü[âVâçâôâfâBâîâNâgâèôαé╠âtâ@âCâïæSìφÅ£
- '
- szDelFiles$="DelFile"
- MakeListFromSectionFilename szDelFiles$, "Files"
- length% = GetListLength( szDelFiles$ )
- FOR j%=1 TO length% STEP 1
- szDelFile$ =GetListItem( szDelFiles$, j% )
- szDelFile$ = MakePath( _destDir$, szDelFile$ )
- RemoveFile szDelFile$, cmoForce
- NEXT j%
-
- d% = ResetWindowsInfo( _winDir$ )
-
- RestoreCursor prev%
-
- ' ÅIù╣é╠ƱĪ
- '
- d% = DoMsgBox( "ânü[âhâfâBâXâNé⌐éτüAâfü[â^é≡æSé─ìφÅ£é╡é▄é╡é╜üB", "âAâôâCâôâXâgü[âï", MB_ICONINFORMATION )
- END
-
-
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ' FUNCTION MakePath
- '
- ' Purpose:
- ' Appends a file name to the end of a directory path,
- ' inserting a backslash character as needed.
- ' Arguments:
- ' pathName$ - full directory path (with optional ending "\")
- ' fileName$ - file name to append to directory
- ' Returns:
- ' Resulting fully qualified path name.
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
- FUNCTION MakePath (pathName$, fileName$) STATIC AS STRING
- IF pathName$ = "" THEN
- MakePath = fileName$
- ELSEIF fileName$ = "" THEN
- MakePath = pathName$
- ELSEIF MID$(pathName$, LEN(pathName$), 1) = "\" THEN
- MakePath = pathName$ + fileName$
- ELSE
- MakePath = pathName$ + "\" + fileName$
- END IF
- END FUNCTION
-
-
-
- FUNCTION SetWindowsInfo( _winDir$ ) STATIC
-
- szSystemIni$ = MakePath( _winDir$, "SYSTEM.INI" )
- szWinIni$ = MakePath( _winDir$, "WIN.INI" )
-
- ' SYSTEM.INI é╠ [boot],SCRNSAVE.EXE= âGâôâgâèÅæé½ì₧é▌
- '
- szEntry$ = MakePath( _winDir$, "SVRCANBE.SCR" )
- d% = WritePrivateProfileString( "boot", "SCRNSAVE.EXE", szEntry$, szSystemIni$ )
-
- ' WIN.INI é╠ [windows],ScreenSaveActive= âGâôâgâèÅæé½ì₧é▌
- d% = SystemParametersInfo( SPI_SETSCREENSAVEACTIVE, 1, "", WM_WININICHANGE )
-
- ' SYSTEM.INI é╠ [mciseq.drv],disablewarning= âGâôâgâèÅæé½ì₧é▌
- '
- d% = WritePrivateProfileString( "mciseq.drv", "disablewarning", "TRUE", szSystemIni$ )
-
-
- END FUNCTION
-
-
-
- FUNCTION ResetWindowsInfo( _winDir$ ) STATIC
-
- szSystemIni$ = MakePath( _winDir$, "SYSTEM.INI" )
- szWinIni$ = MakePath( _winDir$, "WIN.INI" )
-
- ' WIN.INI é╠ [windows],ScreenSaveActive= âGâôâgâèÅæé½ì₧é▌
- d% = SystemParametersInfo( SPI_SETSCREENSAVEACTIVE, 0, "", WM_WININICHANGE )
-
- ' SYSTEM.INI é╠ [boot],SCRNSAVE.EXE= âGâôâgâèÅæé½ì₧é▌
- '
- d% = WritePrivateProfileString( "boot", "SCRNSAVE.EXE", "(é╚é╡)", szSystemIni$ )
-
- END FUNCTION